package com.lovo.view.dept;

import com.lovo.bean.CutPageBean;
import com.lovo.javafxComponent.*;
import com.lovo.service.IDeptService;
import com.lovo.service.impl.DeptServiceImpl;

import javafx.scene.layout.Pane;

/**
 * 部门面板
 */
public class DeptPane extends Pane {

    /**
     * 部门表格
     */
    private LovoTable table;
    /**
     * 姓名查询文本框
     */
    private LovoTxt nameTxt;
    /**
     * 文化程度查询文本框
     */
    private LovoTxt educationTxt;
    /**
     * 所在部门查询文本框
     */
    private LovoTxt deptTxt;
    /**
     * 分页对象
     */
    private LovoCutPage cutObj;
    
    private IDeptService deptService = new DeptServiceImpl();

    /**
     * 构造方法
     */
    public DeptPane() {
        this.initComponent();
    }

    /**
     * 初始化组件
     */
    public void initComponent() {
        new LovoTitle("部门管理", 0, 30, this);

        cutObj = new LovoCutPage(50, 350, this) {
            @Override
            public void clickEvent(int pageNO) {
            	findDeptInfo(pageNO);
            }
        };

        LovoButton addButton = new LovoButton("添加新部门", 80, 450, this);
        addButton.setOnAction(e -> showAddDialog());
        LovoButton updateButton = new LovoButton("修改部门信息", 220, 450, this);
        updateButton.setOnAction(e -> showUpdateDialog());

        initTable();
    }

    /**
     * 显示添加对话框
     */
    private void showAddDialog() {
        new AddDeptDialog(this);
    }
    /**
     * 显示修改对话框
     */
    private void showUpdateDialog(){
        new UpdateDeptDialog(this);
    }

    //------------------------

    /**
     * 初始化表格
     */
    private void initTable() {
        this.table = new LovoTable<>(new String[]{
                "部门名称:name", "成立时间:createTime", "部门描述:info"
        }, 10, 80, 780, 260, this);
        findDeptInfo(1);
    }
    /**
     * 查询部门信息
     */
	public void findDeptInfo(int pageNo) {
		// 将部门信息获取到
		CutPageBean cutPageBean = deptService.findByItem(pageNo);
		// 更新表格数据
		table.updateData(cutPageBean.getList());
		if(pageNo == 1) {
		   	// 更新分页信息
		   	cutObj.setTotal(cutPageBean.getTotalPage());
		}
		
	}


}
